[新機能]dbtのon-run-startに記述したクエリが失敗した時に後続のModelの実行をスキップできるようになりました

[新機能]dbtのon-run-startに記述したクエリが失敗した時に後続のModelの実行をスキップできるようになりました

Clock Icon2024.10.17

さがらです。

dbtの新機能として、on-run-startに記述したクエリが失敗した時に後続のModelの実行をスキップできるようになりました。

https://docs.getdbt.com/reference/global-configs/behavior-changes#failures-in-on-run-start-hooks

簡素な内容になりますが、試してみたので本記事で内容をまとめてみます。

Before

これまでは、on-run-startに設定したクエリが失敗しても関係なく、後続のModelに関するrunやtestが走る仕様でした。

2024-10-17_09h33_10

After

dbt_project.ymlに、下記のようにflagsを定義すると、on-run-startに設定したクエリが失敗した時に後続のModelの実行をスキップできるようになります!

flags:
  skip_nodes_if_on_run_start_fails: True

この状態でdbt runを実行してみると、Beforeのときと違い、後続のModelが実行されていないことがわかります。

2024-10-17_09h35_48

最後に

非常に簡素な内容でしたが、on-run-startに記述したクエリが失敗した時に後続のModelの実行をスキップできることを確認してみました。

on-run-startを利用されている方にとってはとてもありがたい機能だと思いますので、ぜひ設定を有効化してみてください!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.